package com.zbkc.http;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.Map;

import org.apache.commons.io.IOUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.zbkc.util.LogUtil;
import com.zbkc.util.PreferenceUtils;

import android.text.TextUtils;

public class HttpUtil {

	private static final String COMMON_PARAMETER = "?q="
			+ PreferenceUtils.getString("username") + "&b="
			+ PreferenceUtils.getString("password") + "&u=";

	// // ERROR //
	// private static String postCommon(String paramString) {
	// // Byte code:
	// // 0: new 10 java/lang/StringBuilder
	// // 3: dup
	// // 4: ldc 47
	// // 6: invokespecial 16 java/lang/StringBuilder:<init>
	// // (Ljava/lang/String;)V
	// // 9: aload_0
	// // 10: invokevirtual 28 java/lang/StringBuilder:append
	// // (Ljava/lang/String;)Ljava/lang/StringBuilder;
	// // 13: invokevirtual 38 java/lang/StringBuilder:toString
	// // ()Ljava/lang/String;
	// // 16: invokestatic 52 com/zbkc/util/LogUtil:e (Ljava/lang/String;)V
	// // 19: aconst_null
	// // 20: astore_1
	// // 21: aconst_null
	// // 22: astore_2
	// // 23: aconst_null
	// // 24: astore_3
	// // 25: aconst_null
	// // 26: astore 4
	// // 28: new 54 org/apache/http/impl/client/DefaultHttpClient
	// // 31: dup
	// // 32: invokespecial 55
	// // org/apache/http/impl/client/DefaultHttpClient:<init> ()V
	// // 35: astore 5
	// // 37: new 57 org/apache/http/client/methods/HttpPost
	// // 40: dup
	// // 41: aload_0
	// // 42: invokespecial 58 org/apache/http/client/methods/HttpPost:<init>
	// // (Ljava/lang/String;)V
	// // 45: astore 6
	// // 47: aload 5
	// // 49: aload 6
	// // 51: invokevirtual 62
	// // org/apache/http/impl/client/DefaultHttpClient:execute
	// //
	// (Lorg/apache/http/client/methods/HttpUriRequest;)Lorg/apache/http/HttpResponse;
	// // 54: astore 10
	// // 56: aload 10
	// // 58: invokeinterface 68 1 0
	// // 63: invokeinterface 74 1 0
	// // 68: istore 11
	// // 70: aconst_null
	// // 71: astore_3
	// // 72: iload 11
	// // 74: sipush 200
	// // 77: if_icmpne +149 -> 226
	// // 80: aload 10
	// // 82: invokeinterface 78 1 0
	// // 87: astore_3
	// // 88: new 80 java/io/BufferedReader
	// // 91: dup
	// // 92: new 82 java/io/InputStreamReader
	// // 95: dup
	// // 96: aload_3
	// // 97: invokeinterface 88 1 0
	// // 102: invokespecial 91 java/io/InputStreamReader:<init>
	// // (Ljava/io/InputStream;)V
	// // 105: invokespecial 94 java/io/BufferedReader:<init>
	// // (Ljava/io/Reader;)V
	// // 108: astore 12
	// // 110: new 96 java/lang/StringBuffer
	// // 113: dup
	// // 114: invokespecial 97 java/lang/StringBuffer:<init> ()V
	// // 117: astore 13
	// // 119: aload 12
	// // 121: invokevirtual 100 java/io/BufferedReader:readLine
	// // ()Ljava/lang/String;
	// // 124: astore 14
	// // 126: aload 14
	// // 128: ifnonnull +76 -> 204
	// // 131: new 10 java/lang/StringBuilder
	// // 134: dup
	// // 135: ldc 102
	// // 137: invokespecial 16 java/lang/StringBuilder:<init>
	// // (Ljava/lang/String;)V
	// // 140: aload 13
	// // 142: invokevirtual 103 java/lang/StringBuffer:toString
	// // ()Ljava/lang/String;
	// // 145: invokevirtual 28 java/lang/StringBuilder:append
	// // (Ljava/lang/String;)Ljava/lang/StringBuilder;
	// // 148: invokevirtual 38 java/lang/StringBuilder:toString
	// // ()Ljava/lang/String;
	// // 151: invokestatic 52 com/zbkc/util/LogUtil:e (Ljava/lang/String;)V
	// // 154: aload 13
	// // 156: invokevirtual 103 java/lang/StringBuffer:toString
	// // ()Ljava/lang/String;
	// // 159: astore 15
	// // 161: aload 12
	// // 163: invokestatic 108 org/apache/commons/io/IOUtils:closeQuietly
	// // (Ljava/io/Reader;)V
	// // 166: aload_3
	// // 167: ifnull +9 -> 176
	// // 170: aload_3
	// // 171: invokeinterface 111 1 0
	// // 176: aload 6
	// // 178: ifnull +8 -> 186
	// // 181: aload 6
	// // 183: invokevirtual 114 org/apache/http/client/methods/HttpPost:abort
	// // ()V
	// // 186: aload 5
	// // 188: ifnull +13 -> 201
	// // 191: aload 5
	// // 193: invokevirtual 118
	// // org/apache/http/impl/client/DefaultHttpClient:getConnectionManager
	// // ()Lorg/apache/http/conn/ClientConnectionManager;
	// // 196: invokeinterface 123 1 0
	// // 201: aload 15
	// // 203: areturn
	// // 204: aload 13
	// // 206: aload 14
	// // 208: invokevirtual 126 java/lang/StringBuffer:append
	// // (Ljava/lang/String;)Ljava/lang/StringBuffer;
	// // 211: pop
	// // 212: aload 12
	// // 214: invokevirtual 100 java/io/BufferedReader:readLine
	// // ()Ljava/lang/String;
	// // 217: astore 18
	// // 219: aload 18
	// // 221: astore 14
	// // 223: goto -97 -> 126
	// // 226: aconst_null
	// // 227: invokestatic 108 org/apache/commons/io/IOUtils:closeQuietly
	// // (Ljava/io/Reader;)V
	// // 230: iconst_0
	// // 231: ifeq +9 -> 240
	// // 234: aconst_null
	// // 235: invokeinterface 111 1 0
	// // 240: aload 6
	// // 242: ifnull +8 -> 250
	// // 245: aload 6
	// // 247: invokevirtual 114 org/apache/http/client/methods/HttpPost:abort
	// // ()V
	// // 250: aload 5
	// // 252: ifnull +13 -> 265
	// // 255: aload 5
	// // 257: invokevirtual 118
	// // org/apache/http/impl/client/DefaultHttpClient:getConnectionManager
	// // ()Lorg/apache/http/conn/ClientConnectionManager;
	// // 260: invokeinterface 123 1 0
	// // 265: aconst_null
	// // 266: areturn
	// // 267: astore 7
	// // 269: aload 7
	// // 271: invokevirtual 129 java/io/IOException:printStackTrace ()V
	// // 274: new 131 java/lang/RuntimeException
	// // 277: dup
	// // 278: new 10 java/lang/StringBuilder
	// // 281: dup
	// // 282: ldc 133
	// // 284: invokespecial 16 java/lang/StringBuilder:<init>
	// // (Ljava/lang/String;)V
	// // 287: aload_0
	// // 288: invokevirtual 28 java/lang/StringBuilder:append
	// // (Ljava/lang/String;)Ljava/lang/StringBuilder;
	// // 291: ldc 135
	// // 293: invokevirtual 28 java/lang/StringBuilder:append
	// // (Ljava/lang/String;)Ljava/lang/StringBuilder;
	// // 296: invokevirtual 38 java/lang/StringBuilder:toString
	// // ()Ljava/lang/String;
	// // 299: invokespecial 136 java/lang/RuntimeException:<init>
	// // (Ljava/lang/String;)V
	// // 302: athrow
	// // 303: astore 8
	// // 305: aload_1
	// // 306: invokestatic 108 org/apache/commons/io/IOUtils:closeQuietly
	// // (Ljava/io/Reader;)V
	// // 309: aload_3
	// // 310: ifnull +9 -> 319
	// // 313: aload_3
	// // 314: invokeinterface 111 1 0
	// // 319: aload 4
	// // 321: ifnull +8 -> 329
	// // 324: aload 4
	// // 326: invokevirtual 114 org/apache/http/client/methods/HttpPost:abort
	// // ()V
	// // 329: aload_2
	// // 330: ifnull +12 -> 342
	// // 333: aload_2
	// // 334: invokevirtual 118
	// // org/apache/http/impl/client/DefaultHttpClient:getConnectionManager
	// // ()Lorg/apache/http/conn/ClientConnectionManager;
	// // 337: invokeinterface 123 1 0
	// // 342: aload 8
	// // 344: athrow
	// // 345: astore 16
	// // 347: goto -171 -> 176
	// // 350: astore 19
	// // 352: goto -112 -> 240
	// // 355: astore 9
	// // 357: goto -38 -> 319
	// // 360: astore 8
	// // 362: aload 5
	// // 364: astore_2
	// // 365: aconst_null
	// // 366: astore_1
	// // 367: aconst_null
	// // 368: astore_3
	// // 369: aconst_null
	// // 370: astore 4
	// // 372: goto -67 -> 305
	// // 375: astore 8
	// // 377: aload 6
	// // 379: astore 4
	// // 381: aload 5
	// // 383: astore_2
	// // 384: aconst_null
	// // 385: astore_1
	// // 386: goto -81 -> 305
	// // 389: astore 8
	// // 391: aload 6
	// // 393: astore 4
	// // 395: aload 5
	// // 397: astore_2
	// // 398: aload 12
	// // 400: astore_1
	// // 401: goto -96 -> 305
	// // 404: astore 7
	// // 406: aload 5
	// // 408: astore_2
	// // 409: aconst_null
	// // 410: astore_1
	// // 411: aconst_null
	// // 412: astore_3
	// // 413: aconst_null
	// // 414: astore 4
	// // 416: goto -147 -> 269
	// // 419: astore 7
	// // 421: aload 6
	// // 423: astore 4
	// // 425: aload 5
	// // 427: astore_2
	// // 428: aconst_null
	// // 429: astore_1
	// // 430: goto -161 -> 269
	// // 433: astore 7
	// // 435: aload 6
	// // 437: astore 4
	// // 439: aload 5
	// // 441: astore_2
	// // 442: aload 12
	// // 444: astore_1
	// // 445: goto -176 -> 269
	// //
	// // Exception table:
	// // from to target type
	// // 28 37 267 java/io/IOException
	// // 28 37 303 finally
	// // 269 303 303 finally
	// // 170 176 345 java/io/IOException
	// // 234 240 350 java/io/IOException
	// // 313 319 355 java/io/IOException
	// // 37 47 360 finally
	// // 47 70 375 finally
	// // 80 110 375 finally
	// // 110 126 389 finally
	// // 131 161 389 finally
	// // 204 219 389 finally
	// // 37 47 404 java/io/IOException
	// // 47 70 419 java/io/IOException
	// // 80 110 419 java/io/IOException
	// // 110 126 433 java/io/IOException
	// // 131 161 433 java/io/IOException
	// // 204 219 433 java/io/IOException
	// }
	//
	// public static String postDocumentReturnResult(String paramString1,
	// String paramString2) {
	// LogUtil.e("请求：" + paramString1);
	// String str;
	// try {
	// DefaultHttpClient localDefaultHttpClient;
	// HttpPost localHttpPost = new HttpPost(paramString1);
	// while (true) {
	// try {
	// HttpResponse localHttpResponse = localDefaultHttpClient
	// .execute(localHttpPost);
	// LogUtil.e("状态码："
	// + localHttpResponse.getStatusLine()
	// .getStatusCode());
	// if (localHttpResponse.getStatusLine().getStatusCode() == 200) {
	// InputStream localInputStream = localHttpResponse
	// .getEntity().getContent();
	// str = null;
	// if (localInputStream == null)
	// break;
	// LogUtil.e("存放地址:" + Config.FILE_LOCATION
	// + paramString2);
	// File localFile = new File(Config.FILE_LOCATION);
	// if (!localFile.exists())
	// localFile.mkdir();
	// FileOutputStream localFileOutputStream = new FileOutputStream(
	// Config.FILE_LOCATION + paramString2);
	// byte[] arrayOfByte = new byte[1024];
	// int i = localInputStream.read(arrayOfByte);
	// if (i == -1) {
	// localInputStream.close();
	// localFileOutputStream.close();
	// str = "读取完毕";
	// break;
	// }
	// localFileOutputStream.write(arrayOfByte, 0, i);
	// continue;
	// }
	// } catch (IOException localIOException1) {
	// localIOException1: localIOException1.printStackTrace();
	// LogUtil.e("jsonObject：IOException异常了");
	// throw new RuntimeException("request " + paramString1
	// + "  IOException error");
	// }
	// return null;
	// }
	// }catch(Exception e){
	// e.printStackTrace();
	// }
	// return str;
	// }
	//
	// // ERROR //
	// public static int postResultCode(String paramString) {
	// // Byte code:
	// // 0: new 10 java/lang/StringBuilder
	// // 3: dup
	// // 4: ldc 47
	// // 6: invokespecial 16 java/lang/StringBuilder:<init>
	// // (Ljava/lang/String;)V
	// // 9: aload_0
	// // 10: invokevirtual 28 java/lang/StringBuilder:append
	// // (Ljava/lang/String;)Ljava/lang/StringBuilder;
	// // 13: invokevirtual 38 java/lang/StringBuilder:toString
	// // ()Ljava/lang/String;
	// // 16: invokestatic 52 com/zbkc/util/LogUtil:e (Ljava/lang/String;)V
	// // 19: aconst_null
	// // 20: astore_1
	// // 21: aconst_null
	// // 22: astore_2
	// // 23: new 54 org/apache/http/impl/client/DefaultHttpClient
	// // 26: dup
	// // 27: invokespecial 55
	// // org/apache/http/impl/client/DefaultHttpClient:<init> ()V
	// // 30: astore_3
	// // 31: aload_3
	// // 32: invokevirtual 201
	// // org/apache/http/impl/client/DefaultHttpClient:getParams
	// // ()Lorg/apache/http/params/HttpParams;
	// // 35: ldc 203
	// // 37: sipush 5000
	// // 40: invokestatic 208 java/lang/Integer:valueOf (I)Ljava/lang/Integer;
	// // 43: invokeinterface 214 3 0
	// // 48: pop
	// // 49: new 57 org/apache/http/client/methods/HttpPost
	// // 52: dup
	// // 53: aload_0
	// // 54: invokespecial 58 org/apache/http/client/methods/HttpPost:<init>
	// // (Ljava/lang/String;)V
	// // 57: astore 10
	// // 59: aload_3
	// // 60: aload 10
	// // 62: invokevirtual 62
	// // org/apache/http/impl/client/DefaultHttpClient:execute
	// //
	// (Lorg/apache/http/client/methods/HttpUriRequest;)Lorg/apache/http/HttpResponse;
	// // 65: invokeinterface 68 1 0
	// // 70: invokeinterface 74 1 0
	// // 75: istore 11
	// // 77: iload 11
	// // 79: istore 7
	// // 81: iconst_0
	// // 82: ifeq +9 -> 91
	// // 85: aconst_null
	// // 86: invokeinterface 111 1 0
	// // 91: aload 10
	// // 93: ifnull +8 -> 101
	// // 96: aload 10
	// // 98: invokevirtual 114 org/apache/http/client/methods/HttpPost:abort
	// // ()V
	// // 101: aload_3
	// // 102: ifnull +12 -> 114
	// // 105: aload_3
	// // 106: invokevirtual 118
	// // org/apache/http/impl/client/DefaultHttpClient:getConnectionManager
	// // ()Lorg/apache/http/conn/ClientConnectionManager;
	// // 109: invokeinterface 123 1 0
	// // 114: iload 7
	// // 116: ireturn
	// // 117: astore 4
	// // 119: aload 4
	// // 121: invokevirtual 215 java/lang/Exception:printStackTrace ()V
	// // 124: iconst_0
	// // 125: ifeq +9 -> 134
	// // 128: aconst_null
	// // 129: invokeinterface 111 1 0
	// // 134: aload_2
	// // 135: ifnull +7 -> 142
	// // 138: aload_2
	// // 139: invokevirtual 114 org/apache/http/client/methods/HttpPost:abort
	// // ()V
	// // 142: iconst_0
	// // 143: istore 7
	// // 145: aload_1
	// // 146: ifnull -32 -> 114
	// // 149: aload_1
	// // 150: invokevirtual 118
	// // org/apache/http/impl/client/DefaultHttpClient:getConnectionManager
	// // ()Lorg/apache/http/conn/ClientConnectionManager;
	// // 153: invokeinterface 123 1 0
	// // 158: iconst_0
	// // 159: ireturn
	// // 160: astore 5
	// // 162: iconst_0
	// // 163: ifeq +9 -> 172
	// // 166: aconst_null
	// // 167: invokeinterface 111 1 0
	// // 172: aload_2
	// // 173: ifnull +7 -> 180
	// // 176: aload_2
	// // 177: invokevirtual 114 org/apache/http/client/methods/HttpPost:abort
	// // ()V
	// // 180: aload_1
	// // 181: ifnull +12 -> 193
	// // 184: aload_1
	// // 185: invokevirtual 118
	// // org/apache/http/impl/client/DefaultHttpClient:getConnectionManager
	// // ()Lorg/apache/http/conn/ClientConnectionManager;
	// // 188: invokeinterface 123 1 0
	// // 193: aload 5
	// // 195: athrow
	// // 196: astore 8
	// // 198: goto -64 -> 134
	// // 201: astore 6
	// // 203: goto -31 -> 172
	// // 206: astore 12
	// // 208: goto -117 -> 91
	// // 211: astore 5
	// // 213: aload_3
	// // 214: astore_1
	// // 215: aconst_null
	// // 216: astore_2
	// // 217: goto -55 -> 162
	// // 220: astore 5
	// // 222: aload 10
	// // 224: astore_2
	// // 225: aload_3
	// // 226: astore_1
	// // 227: goto -65 -> 162
	// // 230: astore 4
	// // 232: aload_3
	// // 233: astore_1
	// // 234: aconst_null
	// // 235: astore_2
	// // 236: goto -117 -> 119
	// // 239: astore 4
	// // 241: aload 10
	// // 243: astore_2
	// // 244: aload_3
	// // 245: astore_1
	// // 246: goto -127 -> 119
	// //
	// // Exception table:
	// // from to target type
	// // 23 31 117 java/lang/Exception
	// // 23 31 160 finally
	// // 119 124 160 finally
	// // 128 134 196 java/io/IOException
	// // 166 172 201 java/io/IOException
	// // 85 91 206 java/io/IOException
	// // 31 59 211 finally
	// // 59 77 220 finally
	// // 31 59 230 java/lang/Exception
	// // 59 77 239 java/lang/Exception
	// }

	// public static JSONArray postReturnJSONArray(String paramString) {
	// try {
	// String str = postCommon(paramString);
	// if (TextUtils.isEmpty(str))
	// return null;
	// JSONArray localJSONArray = new JSONArray(str);
	// return localJSONArray;
	// } catch (JSONException localJSONException) {
	// localJSONException.printStackTrace();
	// }
	// throw new RuntimeException("request " + paramString
	// + "  JSONException error");
	// }
	//
	// public static JSONObject postReturnJsonObject(String paramString) {
	// try {
	// String str = postCommon(paramString);
	// if (TextUtils.isEmpty(str))
	// return null;
	// JSONObject localJSONObject = new JSONObject(str);
	// return localJSONObject;
	// } catch (JSONException localJSONException) {
	// localJSONException.printStackTrace();
	// }
	// throw new RuntimeException("request " + paramString
	// + "  JSONException error");
	// }

	public static JSONObject postReturnJson(String strUrl,
			Map<String, String> params) {
		LogUtil.e("请求：" + strUrl);
		JSONObject jsonObject = null;
		BufferedReader reader = null;
		DefaultHttpClient httpClient = null;
		HttpEntity entity = null;
		HttpPost postMethod = null;
		try {
			httpClient = new DefaultHttpClient();
			postMethod = new HttpPost(strUrl);
			HttpResponse httpResponse = httpClient.execute(postMethod);
			LogUtil.e("状态码：" + httpResponse.getStatusLine().getStatusCode());
			if (httpResponse.getStatusLine().getStatusCode() == 200) {
				entity = httpResponse.getEntity();
				InputStream is = entity.getContent();
				reader = new BufferedReader(new InputStreamReader(is));
				StringBuffer result = new StringBuffer();
				String line = reader.readLine();
				while (line != null) {
					result.append(line);
					line = reader.readLine();
				}
				LogUtil.e("返回" + result.toString());
				jsonObject = new JSONObject(result.toString());
			} else {
				return null;
			}
		} catch (IOException ie) {
			ie.printStackTrace();
			throw new RuntimeException("request " + strUrl
					+ "  IOException error");
		} catch (JSONException e) {
			e.printStackTrace();
			throw new RuntimeException("request " + strUrl
					+ "  JSONException error");
		} finally {
			IOUtils.closeQuietly(reader);
			if (entity != null) {
				try {
					entity.consumeContent();
				} catch (IOException e) {
				}
			}

			if (postMethod != null) {
				postMethod.abort();
			}

			if (httpClient != null) {
				httpClient.getConnectionManager().shutdown();
			}
		}
		return jsonObject;
	}

	public static boolean postReturnResult(String strUrl,
			Map<String, String> params) {
		LogUtil.e("请求：" + strUrl);
		JSONObject jsonObject = null;
		BufferedReader reader = null;
		DefaultHttpClient httpClient = null;
		HttpEntity entity = null;
		HttpPost postMethod = null;
		try {
			httpClient = new DefaultHttpClient();
			postMethod = new HttpPost(strUrl);
			// 准备参数
			if (params != null) {
				StringBuffer paramsBuf = new StringBuffer();
				int i = 0;
				for (String key : params.keySet()) {
					if (i > 0) {
						paramsBuf.append("&");
					}
					paramsBuf.append(key).append("=").append(params.get(key));
					i++;
				}
				postMethod.setEntity(new StringEntity(paramsBuf.toString(),
						"UTF-8"));
			}
			HttpResponse httpResponse = httpClient.execute(postMethod);
			if (httpResponse.getStatusLine().getStatusCode() == 200) {
				entity = httpResponse.getEntity();
				InputStream is = entity.getContent();
				LogUtil.e("tag", "is " + is.toString());
				reader = new BufferedReader(new InputStreamReader(is));
				StringBuffer result = new StringBuffer();
				String line = reader.readLine();
				while (line != null) {
					result.append(line);
					line = reader.readLine();
				}
				LogUtil.i("tag", strUrl + "  result:" + result.toString());
				jsonObject = new JSONObject(result.toString());
				return true;
			}
		} catch (IOException ie) {
			ie.printStackTrace();
			throw new RuntimeException("request " + strUrl
					+ "  IOException error");
		} catch (JSONException e) {
			LogUtil.e("zbkc", "strUrl:", e);
			e.printStackTrace();
			throw new RuntimeException("request " + strUrl
					+ "  JSONException error");
		} finally {
			IOUtils.closeQuietly(reader);
			if (entity != null) {
				try {
					entity.consumeContent();
				} catch (IOException e) {
				}
			}
			if (postMethod != null) {
				postMethod.abort();
			}
			if (httpClient != null) {
				httpClient.getConnectionManager().shutdown();
			}
		}
		return false;
	}

	public static JSONObject postReturnJson(String strUrl) {
		return postReturnJson(strUrl, null);
	}

	public static JSONArray postReturnJson3(String strUrl) {
		LogUtil.e("请求：" + strUrl);
		JSONArray jsonObject = null;
		BufferedReader reader = null;
		DefaultHttpClient httpClient = null;
		HttpEntity entity = null;
		HttpPost postMethod = null;
		try {
			httpClient = new DefaultHttpClient();
			postMethod = new HttpPost(strUrl);
			HttpResponse httpResponse = httpClient.execute(postMethod);
			if (httpResponse.getStatusLine().getStatusCode() == 200) {
				entity = httpResponse.getEntity();
				InputStream is = entity.getContent();
				reader = new BufferedReader(new InputStreamReader(is));
				StringBuffer result = new StringBuffer();
				String line = reader.readLine();
				while (line != null) {
					result.append(line);
					line = reader.readLine();
				}
				jsonObject = new JSONArray(result.toString());
				LogUtil.e("respond:" + jsonObject.toString());
			}
		} catch (IOException ie) {
			ie.printStackTrace();
			throw new RuntimeException("request " + strUrl
					+ "  IOException error");
		} catch (JSONException e) {
			e.printStackTrace();
			throw new RuntimeException("request " + strUrl
					+ "  JSONException error");
		} finally {
			IOUtils.closeQuietly(reader);
			if (entity != null) {
				try {
					entity.consumeContent();
				} catch (IOException e) {
				}
			}
			if (postMethod != null) {
				postMethod.abort();
			}
			if (httpClient != null) {
				httpClient.getConnectionManager().shutdown();
			}
		}
		return jsonObject;
	}

	public static String postDocumentReturnResult(String address,
			String filename) {
		LogUtil.e("请求：" + address);
		String result = null;
		HttpEntity entity = null;
		DefaultHttpClient defaultHttpClient = new DefaultHttpClient();
		HttpPost httpPost = new HttpPost(address);
		try {
			HttpResponse httpResponse = defaultHttpClient.execute(httpPost);
			LogUtil.e("状态码：" + httpResponse.getStatusLine().getStatusCode());
			if (httpResponse.getStatusLine().getStatusCode() == 200) {
				entity = httpResponse.getEntity();
				InputStream is = entity.getContent();
				if (is != null) {
					LogUtil.e("存放地址:" + Config.FILE_LOCATION + filename);
					File files = new File(Config.FILE_LOCATION);
					if (!files.exists()) {
						files.mkdir();
					}
					OutputStream out = new FileOutputStream(
							Config.FILE_LOCATION + filename);
					byte[] cache = new byte[1024];
					int length = 0;
					while ((length = is.read(cache)) != -1) {
						out.write(cache, 0, length);
					}
					is.close();
					out.close();
					result = "读取完毕";
				}
			} else {
				return null;
			}
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return result;
	}

	// public static String postDocumentReturnResult(String paramString1,
	// String paramString2) {
	// LogUtil.e("请求：" + paramString1);
	// DefaultHttpClient localDefaultHttpClient ;
	// String str;
	// try {
	// localDefaultHttpClient = new DefaultHttpClient();
	// } catch (IOException localIOException2) {
	// try {
	// HttpPost localHttpPost = new HttpPost(paramString1);
	// while (true) {
	// try {
	// HttpResponse localHttpResponse = localDefaultHttpClient
	// .execute(localHttpPost);
	// LogUtil.e("状态码："
	// + localHttpResponse.getStatusLine()
	// .getStatusCode());
	// if (localHttpResponse.getStatusLine().getStatusCode() == 200) {
	// InputStream localInputStream = localHttpResponse
	// .getEntity().getContent();
	// str = null;
	// if (localInputStream == null)
	// break;
	// LogUtil.e("存放地址:" + Config.FILE_LOCATION
	// + paramString2);
	// File localFile = new File(Config.FILE_LOCATION);
	// if (!localFile.exists())
	// localFile.mkdir();
	// FileOutputStream localFileOutputStream = new FileOutputStream(
	// Config.FILE_LOCATION + paramString2);
	// byte[] arrayOfByte = new byte[1024];
	// int i = localInputStream.read(arrayOfByte);
	// if (i == -1) {
	// localInputStream.close();
	// localFileOutputStream.close();
	// str = "读取完毕";
	// break;
	// }
	// localFileOutputStream.write(arrayOfByte, 0, i);
	// continue;
	// }
	// } catch (IOException localIOException1) {
	// label247: localIOException1.printStackTrace();
	// LogUtil.e("jsonObject：IOException异常了");
	// throw new RuntimeException("request " + paramString1
	// + "  IOException error");
	// }
	// return null;
	// localIOException2 = localIOException2;
	// }
	// } catch (IOException localIOException3) {
	// break label247;
	// }
	// }
	// return str;
	// }

}
